Ruby 日記 1日目: トップレベルのクラスとネストされたクラス
#Ruby_日記 #2021-08-26
https://rex.libertyfish.co.jp/exam_histories/42141/user_answers/62b5462f-8f5f-46bd-8047-a3656be2b611
次のプログラムを実行するとどうなりますか
code:gold/ex01/main.rb
class C
CONST = "Good, night"
end
module M
CONST = "Good, evening"
end
module M
class C
CONST = "Hello, world"
end
end
module M
class C
p CONST
end
end
選択肢:
例外が発生する
"Good, night"と表示される
"Good, evening"と表示される
"Hello, world"と表示される
code:rb
module M
class C
p CONST
end
end
は
code:rb
p M::C::CONST
と同じだね。
問題ではクラスCが2個あるようにみえるけど C と M::C は別物だよ。
答えは
code:sh
# ruby gold/ex01/main.rb
"Hello, world"
Module.nesting を使うとネスト情報がわかるよ
https://docs.ruby-lang.org/ja/2.1.0/method/Module/s/nesting.html